// #ifndef VUE3
import Vue from 'vue'
import App from './App'
import store from '@/store/store.js'

//导入网络请求的包
// 按需导入 $http 对象
import {
  $http
} from '@escook/request-miniprogram'

// 在 uni-app 项目中，可以把 $http 挂载到 uni 顶级对象之上，方便全局调用
uni.$http = $http

//配置请求的根路径
$http.baseUrl = 'https://www.uinav.com'

// 配置请求拦截器---请求开始之前做一些事情
$http.beforeRequest = function(options) {
  uni.showLoading({ //显示loading效果偶
    title: '数据加载中...',
  })

  // 判断请求的是否为有权限的API接口
  if (options.url.indexOf('/my/') !== -1) {
    // 为请求头添加身份认证字段
    options.header = {
      // token字段直接从vuex中获取
      Authorization: "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjEyLCJpYXQiOjE1MjU0MDIyMjMsImV4cCI6MTUyNTQ4ODYyM30.g-4GtEQNPwT_Xs0Pq7Lrco_9DfHQQsBiOKZerkO-O-o",
    }
  }
}

//配置响应拦截器---请求完成之后做一些事情
$http.afterRequest = function() {
  uni.hideLoading() //隐藏loading效果。
}

//通过uni这个顶级对象--->封装弹框的方法 ---->传值了就以你传的为准，没传就按你默认的为准！！
uni.$showMsg = function(title = '数据请求失败', duration = 1500) {
  uni.showToast({
    title,
    duration,
    icon: 'none'
  })
}

Vue.config.productionTip = false

App.mpType = 'app'

const app = new Vue({
  ...App,
  store
})
app.$mount()
// #endif

// #ifdef VUE3
import {
  createSSRApp
} from 'vue'
import App from './App.vue'
export function createApp() {
  const app = createSSRApp(App)
  return {
    app
  }
}
// #endif
